Conventional technology has used various complex and cumbersome methods to determine the topology of a network. For example, in one existing method, the discovery process requires pre-existing knowledge of nodes in the computing system. At a system start up, the network adapters must work in a “promiscuous” mode. In this mode, all packets that arrive at the network card are received, regardless of addressing. Then, the network adapters must switch to a normal mode for normal operation. In the normal mode, only packets addressed to a particular network card are received. The existing methods are complex, slow and may produce inaccurate results, and therefore there exists a need for a method of discovering network topology that is simple, fast, and accurate.